$(function () {
  // 文章列表

  // 补零函数
  function addZero(n) {
    return n < 10 ? '0' + n : n
  }
  // 通过模板引擎的过滤器格式化日期
  template.defaults.imports.formatDate = function (date) {
    // 把字符串格式的日期转换为对象形式的日期
    var d = new Date(date)
    var year = d.getFullYear()
    var month = addZero(d.getMonth() + 1)
    var day = addZero(d.getDate())
    var hour = addZero(d.getHours())
    var minutes = addZero(d.getMinutes())
    var seconds = addZero(d.getSeconds())
    // return year + '-' + month + '-' + day + ' ' + hour + ':' + minutes + ':' + seconds
    return year + '-' + month + '-' + day
  }

  // 获取文章分类列表数据
  function loadCateList () {
    $.ajax({
      type: 'get',
      url: 'my/article/cates',
      success: function (res) {
        if (res.status === 0) {
          // 获取列表数据
          var tags = template('cate-tpl', res)
          $('#cate').html(tags)
          // layui要求动态的表单数据必须手动调用render方法
          layui.form.render('select')
        } else {
          layer.msg(res.message)
        }
      }
    })
  }
  loadCateList()

  // 分页相关的变量
  // 当前显示第几页
  var pagenum = 1
  // 每页显示多少条
  var pagesize = 2

  // 动态加载表格数据
  function loadArticleList (params) {
    $.ajax({
      type: 'get',
      url: 'my/article/list',
      data: params,
      success: function (res) {
        if (res.status === 0) {
          // 查询成功，渲染列表
          var tags = template('list-tpl', res)
          $('.layui-table tbody').html(tags)
          // 加载并渲染文章列表后，处理分页逻辑
          layui.laypage.render({
            // 分页显示的位置
            elem: 'page',
            // 分页的布局
            layout: ['prev', 'page', 'next', 'limit', 'count', 'skip'],
            // 定制每页条数列表
            limits: [2, 5, 30, 40, 50],
            // 当前页码
            curr: pagenum,
            // 每页显示的条数
            limit: pagesize,
            // 数据总条数
            count: res.total,
            // 控制页码的跳转(页吗发生变化时自动触发)
            jump: function (obj, first) {
              // obj表示所有的配置参数
              // first表示是否首次加载数据
              // obj.curr 表示切换后当前的页码
              // obj.limit 表示切换后每页的条数
              pagenum = obj.curr
              pagesize = obj.limit
              if (!first) {
                // 表示不是首次加载数据
                loadArticleList({
                  pagenum: pagenum,
                  pagesize: pagesize
                })
              }
            }
          })
        } else {
          layer.msg(res.message)
        }
      }
    })
  }
  loadArticleList({
    pagenum: pagenum,
    pagesize: pagesize
  })

  // 实现搜索功能
  $('.layui-form').submit(function (e) {
    e.preventDefault()
    // 获取筛选条件
    var fd = $(this).serializeArray()
    // 请求参数
    var params = {
      pagenum: 1,
      pagesize: 10
    }
    fd.forEach(function (item) {
      if (item.value) {
        // 选择了条件，添加到参数中
        params[item.name] = item.value
      }
    })
    // 调用接口发送请求
    loadArticleList(params)
  })

  // 删除文章
  $('.layui-table tbody').on('click', '.delete', function (e) {
    // 获取要删除的文章的id
    var id = $(this).data('id')
    layer.confirm('确认要退出吗?', {icon: 3, title:'提示'}, function(index){
      $.ajax({
        type: 'get',
        url: 'my/article/delete/' + id,
        data: {
          id: id
        },
        success: function (res) {
          if (res.status === 0) {
            // 删除成功，关闭窗口，刷新列表
            layer.close(index)
            loadArticleList({
              pagenum: 1,
              pagesize: 10
            })
          }
        }
      })
      
    })
  })
})